<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>便量的声明提前</title>
    <script>
        /* 变量的声明提前 */
        /* 
        变量的声明提前
            使用var关键字声明的变量，会在所有的代码执行前被声明，但是不会赋值，即var a;
            但是如果声明变量时不声明var关键字，则变量不会被声明提前
        函数的声明提前
            使用函数声明形式创建的函数function 函数名(){}
                它会在所有的代码执行之前就被创建，所以可以在函数声明前调用函数
            使用函数表达式创建的函数，不会被声明提前，不能声明前调用

        
        */

        //不写var相当于window.a = 123;
        fun(); //不会报错，执行
        //fun2();//会报错，is not defined
        var a = 123;
        console.log(a);
        //函数声明，会被提前创建
        function fun() {
            console.log("我时一个fun函数");
        }
        //函数表达式，不会被提前创建
        var fun2 = function() {
            console.log("我时fun2函数")
        }
    </script>
</head>

<body>

</body>

</html>